package main

import "fmt"

func main1() {
	/*
		Scan函数 可以一行可以读取多个数据，并且我们换行不影响输入
	*/
	var name int
	fmt.Scan(&name) //这种是忽略返回值的
	fmt.Println(name)
	//这种是容易缺少错误的处理的缺失

	fmt.Println("===================")

	var a, b int
	n, err := fmt.Scan(&a, &b) //这个前面表示的是输入的数据是多少项
	fmt.Println(n, err)
	//这种是全部接收的的
	//在Go语言中我们是可以用nil表示这个是空值，空指针等

	_, err = fmt.Scan(&a, &b)
	fmt.Println(err)
	//不要接收多个数据，只接收错误信息

	n, _ = fmt.Scan(&a, &b, &name)
	fmt.Println(n)
	fmt.Println(a, b, name)
	//接收多个数据，不去接收错误信息
}
func main2() {
	/*
		Scanln是一种一行一行的读取的函数，所以在Scanln中所有的数据都需要在同一行
	*/
	var name, nams int
	n, err := fmt.Scanln(&name, &nams)   //第一行读取两个数据
	n1, err1 := fmt.Scanln(&name, &nams) //第二行读取两个数据
	fmt.Println(n, err, n1, err1)
}
func main() {
	/*
		Scanf格式化输入,string输入要格式时候要具有空格,数字类型可以不用在意这个空格

	*/
	var name string
	var age int
	n, err := fmt.Scanf("%s - %d", &name, &age)
	fmt.Println(n, err, name, age)

	var name1 int
	var age1 int
	n1, err1 := fmt.Scanf("%d-%d", &name1, &age1)
	fmt.Println(n1, err1, name1, age1)
}
